/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package rest.pojo.conversor;

import entidade.Colheita;
import java.util.ArrayList;
import java.util.List;
import rest.pojo.ColheitaPOJO;
import static rest.pojo.conversor.LocalConverter.fromLocalPOJO;
import static rest.pojo.conversor.LocalConverter.toLocalPOJO;
import static rest.pojo.conversor.ProdutorConverter.fromProdutorPOJO;
import static rest.pojo.conversor.ProdutorConverter.toProdutorPOJO;

/**
 *
 * @author geovane
 */
public class ColheitaConverter {
        
    private static final ColheitaConverter uniqueInstance = new ColheitaConverter();
    
    private ColheitaConverter(){
        
    }
    
    public static ColheitaConverter getInstance(){
        return uniqueInstance;
    }
    
    public static ColheitaPOJO toColheitaPOJO(Colheita colheita){
        if (colheita!=null){
            ColheitaPOJO resposta = new ColheitaPOJO();
            
            resposta.setId(colheita.getId());
            resposta.setDataColheita(colheita.getDataColheita());
            resposta.setLocal(toLocalPOJO(colheita.getLocal()));
            resposta.setObservacao(colheita.getObservacao());
            resposta.setPeso(colheita.getPeso());
            resposta.setProdutor(toProdutorPOJO(colheita.getProdutor()));
            
            return resposta;
        }else {
            return null;
        }
        
    }
    
    public static Colheita fromColheitaPOJO(ColheitaPOJO colheitaPOJO){
        if (colheitaPOJO!=null){
          Colheita resposta = new Colheita();
            
            resposta.setId(colheitaPOJO.getId());
            resposta.setDataColheita(colheitaPOJO.getDataColheita());
            resposta.setLocal(fromLocalPOJO(colheitaPOJO.getLocal()));
            resposta.setObservacao(colheitaPOJO.getObservacao());
            resposta.setPeso(colheitaPOJO.getPeso());
            resposta.setProdutor(fromProdutorPOJO(colheitaPOJO.getProdutor()));
            return resposta;
            
        }else {
            return null;
        }
    }
    
     public static List<ColheitaPOJO> toColheitasPOJO(List<Colheita> colheitas) {
        if (colheitas != null) {

            ArrayList<ColheitaPOJO> resposta = new ArrayList<>();

            colheitas.stream().forEach((Colheita colheita) -> {
                resposta.add(toColheitaPOJO(colheita));
            });

            return resposta;
        } else {
            return null;
        }

    }

    public static List<Colheita> fromColheitasPOJO(List<ColheitaPOJO> colheitasPOJO) {
        if (colheitasPOJO != null) {

            ArrayList<Colheita> resposta = new ArrayList<>();

            colheitasPOJO.stream().forEach((ColheitaPOJO colheitaPOJO) -> {
                resposta.add(fromColheitaPOJO(colheitaPOJO));
            });

            return resposta;
        } else {
            return null;
        }
    }

}
